package com.atguigu.gmall.pay.config;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author lsj
 * @create 2021-08-30 17:32
 */
@ConfigurationProperties(prefix = "pay.alipay")
@Configuration
@Data
public class AppAlipayConfig {
    // 应用ID,您的APPID，收款账号既是您的APPID对应支付宝账号
    public String app_id;

    // 商户私钥，您的PKCS8格式RSA2私钥。商户发出去的数据，
    // 都是用商户私钥加密的，商户公钥交给支付宝
    public String merchant_private_key;

    // 支付宝公钥,查看地址：https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    // 商户接受到支付宝返回数据以后，要解密用的
    public String alipay_public_key;

    // 服务器异步通知页面路径  需http://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
    // 异步通知页面:
    public String notify_url;

    // 页面跳转同步通知页面路径 需http://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
    // 支付成功应该跳到我的订单列表页  http://192.168.200.188/alipay_demo_war_exploded/return_url.jsp
    // 同步通知页面： 支付成功以后，支付宝会自动让浏览器跳转到的页面
    public String return_url;

    // 签名方式
    public String sign_type;

    // 字符编码格式
    public String charset;

    // 支付宝网关
    public String gatewayUrl;

    @Bean
    public AlipayClient alipayClient(){
        //alipay 的客户端
        AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl,
                app_id, merchant_private_key, "json",
                charset, alipay_public_key, sign_type);
        return alipayClient;
    }

}
